home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 37 / Amiga Format CD37 (1999-02-16)(Future Publishing)(GB)(Track 1 of 3)[!][issue 1999-03].iso / -screenplay- / shareware / invasionforce / source / gadgets.c < prev    next >
C/C++ Source or Header  |  1999-01-09  |  2KB  |  146 lines

  1.  
  2. /* Gadgets.H - functions for easy gadget handling */
  3.  
  4. #include <intuition/intuition.h>
  5. #include <proto/intuition.h>
  6. #include <proto/graphics.h>
  7. #include <graphics/gfxmacros.h>
  8. #include "gadgets_protos.h"
  9.  
  10. #define FI }
  11. #define OD }
  12.  
  13. void ZapGadget(gadget,rpt)
  14. struct Gadget *gadget;
  15. struct RastPort *rpt;
  16. {
  17.     short x1,y1,x2,y2;
  18.  
  19.     x1= gadget->LeftEdge;
  20.     x2= x1+ gadget->Width-1;
  21.     y1= gadget->TopEdge;
  22.     y2= y1+ gadget->Height-1;
  23.  
  24.     RectFill(rpt,x1,y1,x2,y2);
  25. }
  26.  
  27. void ZapGList(gadget,window,num)
  28. struct Gadget *gadget;
  29. struct Window *window;
  30. short num;
  31. {
  32.     short ctr;
  33.     struct RastPort *rpt;
  34.  
  35.     rpt= window->RPort;
  36.     SetDrMd(rpt,JAM1);
  37.     SetAPen(rpt,0);
  38.     for (ctr=0; ctr<num; ctr++) {
  39.         ZapGadget(gadget,rpt);
  40.         gadget= gadget->NextGadget;
  41.         if (gadget==NULL)
  42.             break;
  43.     OD
  44. }
  45.  
  46. int selected(gadget)
  47. struct Gadget *gadget;
  48. {
  49.     if ( gadget->Flags & SELECTED )
  50.         return TRUE;
  51.     else
  52.         return FALSE;
  53. }
  54.  
  55. void select(gadget)
  56. struct Gadget *gadget;
  57. {
  58.     if ( !selected(gadget) )
  59.         gadget->Flags += SELECTED;
  60. }
  61.  
  62. void unselect(gadget)
  63. struct Gadget *gadget;
  64. {
  65.     if ( selected(gadget) )
  66.         gadget->Flags -= SELECTED;
  67. }
  68.  
  69. int disabled(gadget)
  70. struct Gadget *gadget;
  71. {
  72.     if ( gadget->Flags & GADGDISABLED )
  73.         return TRUE;
  74.     else
  75.         return FALSE;
  76. }
  77.  
  78. void enable(gadget)
  79. struct Gadget *gadget;
  80. {
  81.     if ( disabled(gadget) )
  82.          gadget->Flags -= GADGDISABLED;
  83. }
  84.  
  85. void disable(gadget)
  86. struct Gadget *gadget;
  87. {
  88.     if ( !disabled(gadget) )
  89.         gadget->Flags += GADGDISABLED;
  90. }
  91.  
  92. void EnableGList(gadget,number)
  93. struct Gadget *gadget;
  94. int number;
  95. {
  96.     int ctr;
  97.  
  98.     for (ctr=1; ctr<=number; ctr++) {
  99.         enable(gadget);
  100.         gadget= gadget->NextGadget;
  101.     OD
  102. }
  103.  
  104. void DisableGList(gadget,number)
  105. struct Gadget *gadget;
  106. int number;
  107. {
  108.     int ctr;
  109.  
  110.     for (ctr=1; ctr<=number; ctr++) {
  111.         unselect(gadget);
  112.         disable(gadget);
  113.         gadget= gadget->NextGadget;
  114.     OD
  115. }
  116.  
  117. void setselect(gadget,flag)
  118. struct Gadget *gadget;
  119. short flag;
  120. {
  121.     if (flag)
  122.         select(gadget);
  123.     else
  124.         unselect(gadget);
  125. }
  126.  
  127. void show_depress(gadget,rpt)
  128. struct Gadget *gadget;
  129. struct RastPort *rpt;
  130. {    // show the gadget depressed, as if by the mouse
  131.     short x1,y1,x2,y2;
  132.  
  133.     x1= gadget->LeftEdge;
  134.     x2= x1+ gadget->Width-1;
  135.     y1= gadget->TopEdge;
  136.     y2= y1+ gadget->Height-1;
  137.  
  138.     SetWrMsk(rpt,3);
  139.     SetDrMd(rpt,COMPLEMENT);
  140.     RectFill(rpt,x1,y1,x2,y2);
  141.     SetDrMd(rpt,JAM1);
  142.     SetWrMsk(rpt,15);
  143. }
  144.  
  145. /* end of listing */
  146.